﻿using Cl.Model.DataBaseEntityDtos.Shops.BaseShop;
using Cl.Model.Results;
using Cl.Utils.Primitives.Interface;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cl.Service.Service.Shops.BaseShop
{
    public interface IBaseShopService : IScopedService
    {
        Task<ResultInfoModel> Save(BaseShopInputDto obj);

        Task<ResultInfoModel> Delete(List<int> ids);

        Task<ResultInfoModel> Update(BaseShopInputDto obj);

        Task<PageResultModel<BaseShopOutputDto>> Query(SearchBaseShopDto request);

        Task<BaseShopOutputDto?> FindShopData(int shopId);

        Task<BaseShopOutputDto?> FindUserShopData(int userId);

        Task<ResultInfoModel> OpenOrCloseShop(int shopId, bool enable);

        Task<ResultInfoModel> FindShopHomeInfo(int shopId);

        Task<ResultInfoModel> ApplyShopQualifications([FromForm] ShopQualificationInputDto obj);

        Task<ResultInfoModel> AuditShopQualifications([FromBody] ShopQualificationAuditDto obj);

        Task<ResultInfoModel> UploadShopQualificationFile([FromForm] ShopQualificationInputDto obj);
    }
}
